home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / netinet / igmp.h < prev    next >
C/C++ Source or Header  |  2009-10-07  |  5KB  |  127 lines

  1. /* Copyright (C) 1997, 1999, 2003 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.  
  4.    The GNU C Library is free software; you can redistribute it and/or
  5.    modify it under the terms of the GNU Lesser General Public
  6.    License as published by the Free Software Foundation; either
  7.    version 2.1 of the License, or (at your option) any later version.
  8.  
  9.    The GNU C Library is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.    Lesser General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU Lesser General Public
  15.    License along with the GNU C Library; if not, write to the Free
  16.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.    02111-1307 USA.  */
  18.  
  19. #ifndef _NETINET_IGMP_H
  20. #define    _NETINET_IGMP_H 1
  21.  
  22. #include <sys/cdefs.h>
  23. #include <sys/types.h>
  24.  
  25. #ifdef __USE_BSD
  26.  
  27. #include <netinet/in.h>
  28.  
  29. __BEGIN_DECLS
  30.  
  31. /*
  32.  * Copyright (c) 1988 Stephen Deering.
  33.  * Copyright (c) 1992, 1993
  34.  *    The Regents of the University of California.  All rights reserved.
  35.  *
  36.  * This code is derived from software contributed to Berkeley by
  37.  * Stephen Deering of Stanford University.
  38.  *
  39.  * Redistribution and use in source and binary forms, with or without
  40.  * modification, are permitted provided that the following conditions
  41.  * are met:
  42.  * 1. Redistributions of source code must retain the above copyright
  43.  *    notice, this list of conditions and the following disclaimer.
  44.  * 2. Redistributions in binary form must reproduce the above copyright
  45.  *    notice, this list of conditions and the following disclaimer in the
  46.  *    documentation and/or other materials provided with the distribution.
  47.  * 4. Neither the name of the University nor the names of its contributors
  48.  *    may be used to endorse or promote products derived from this software
  49.  *    without specific prior written permission.
  50.  *
  51.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  52.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  53.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  54.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  55.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  56.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  57.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  58.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  59.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  60.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  61.  * SUCH DAMAGE.
  62.  *
  63.  *    @(#)igmp.h    8.1 (Berkeley) 6/10/93
  64.  *    $FreeBSD$
  65.  */
  66.  
  67. struct igmp {
  68.   u_int8_t igmp_type;             /* IGMP type */
  69.   u_int8_t igmp_code;             /* routing code */
  70.   u_int16_t igmp_cksum;           /* checksum */
  71.   struct in_addr igmp_group;      /* group address */
  72. };
  73.  
  74. #define IGMP_MINLEN            8
  75.  
  76. /*
  77.  * Message types, including version number.
  78.  */
  79. #define IGMP_MEMBERSHIP_QUERY       0x11    /* membership query         */
  80. #define IGMP_V1_MEMBERSHIP_REPORT    0x12    /* Ver. 1 membership report */
  81. #define IGMP_V2_MEMBERSHIP_REPORT    0x16    /* Ver. 2 membership report */
  82. #define IGMP_V2_LEAVE_GROUP        0x17    /* Leave-group message        */
  83.  
  84. #define IGMP_DVMRP            0x13    /* DVMRP routing message    */
  85. #define IGMP_PIM            0x14    /* PIM routing message      */
  86. #define IGMP_TRACE            0x15
  87.  
  88. #define IGMP_MTRACE_RESP        0x1e    /* traceroute resp.(to sender)*/
  89. #define IGMP_MTRACE            0x1f    /* mcast traceroute messages  */
  90.  
  91. #define IGMP_MAX_HOST_REPORT_DELAY    10    /* max delay for response to     */
  92.                         /*  query (in seconds) according */
  93.                         /*  to RFC1112                   */
  94. #define IGMP_TIMER_SCALE        10    /* denotes that the igmp code field */
  95.                         /* specifies time in 10th of seconds*/
  96.  
  97. /*
  98.  * States for the IGMP v2 state table.
  99.  */
  100. #define IGMP_DELAYING_MEMBER    1
  101. #define IGMP_IDLE_MEMBER    2
  102. #define IGMP_LAZY_MEMBER    3
  103. #define IGMP_SLEEPING_MEMBER    4
  104. #define IGMP_AWAKENING_MEMBER    5
  105.  
  106. /*
  107.  * States for IGMP router version cache.
  108.  */
  109. #define IGMP_v1_ROUTER        1
  110. #define IGMP_v2_ROUTER        2
  111.  
  112. /*
  113.  * The following four defininitions are for backwards compatibility.
  114.  * They should be removed as soon as all applications are updated to
  115.  * use the new constant names.
  116.  */
  117. #define IGMP_HOST_MEMBERSHIP_QUERY    IGMP_MEMBERSHIP_QUERY
  118. #define IGMP_HOST_MEMBERSHIP_REPORT    IGMP_V1_MEMBERSHIP_REPORT
  119. #define IGMP_HOST_NEW_MEMBERSHIP_REPORT    IGMP_V2_MEMBERSHIP_REPORT
  120. #define IGMP_HOST_LEAVE_MESSAGE        IGMP_V2_LEAVE_GROUP
  121.  
  122. __END_DECLS
  123.  
  124. #endif
  125.  
  126. #endif    /* netinet/igmp.h */
  127.